/** 
除了u修饰符，ES6 还为正则表达式添加了y修饰符，
叫做“粘连”（sticky）修饰符。

y修饰符的作用与g修饰符类似，也是全局匹配，
后一次匹配都从上一次匹配成功的下一个位置开始。

不同之处在于，g修饰符只要剩余位置中存在匹配就可，
而y修饰符确保匹配必须从剩余的第一个位置开始，这也就是“粘连”的涵义。
*/
var s = 'aaa_aa_a';
var r1 = /a+/g;
var r2 = /a+/y;

console.log(r1.exec(s) )// ["aaa"]
console.log(r2.exec(s)) // ["aaa"]

console.log(r1.exec(s)) // ["aa"]
console.log(r2.exec(s) )// null

var r = /a+_/y;
console.log(r.exec(s)); // ["aaa_"]
console.log(r.exec(s)) // ["aa_"]

var s1 =  /a+_/g;
console.log(s1.exec(s))
console.log(s1.exec(s));

// RegExp.prototype.sticky 属性 § ⇧
var r3 = /hello\d/y;
console.log(r.sticky); //true

// RegExp.prototype.flags 属性 § ⇧
var r4 = /abc/ig.source;
console.log(r4); // abc

console.log(/abc/ig.flags); //gi